home *** CD-ROM | disk | FTP | other *** search
/ System Booster / System Booster.iso / Texteditors / AmokEd / doc / AmokEd.dok < prev    next >
Encoding:
Text File  |  1996-09-27  |  52.1 KB  |  1,220 lines

  1. ---------------------------------------------------------------------------
  2.  
  3.                              A m o k E d
  4.                          ===================
  5.  
  6.                              Version 1.30
  7.  
  8. ---------------------------------------------------------------------------
  9.  
  10.   AmokEd V1.30 © Copyright 1990-1992 Hartmut Goebel,
  11.   Alle Recht vorbehalten
  12.  
  13.   Das gesamte Paket ist Freeware. Es darf unter folgenden  Bedingungen
  14.   beliebig oft kopiert und weitergegeben werden:
  15.  
  16.   · Das Paket vollständig und unverändert bleibt (Der Source-Code  ist
  17.     optional, siehe auch Anmerkung unter Punkt 2: Umfang des  Paketes)
  18.   · Mit der Weitergabe des Pakets in keiner Weise ein  Gewinn  erzielt
  19.     wird. Ausdrücklich wird die Weitergabe auf Diskette, die mehr  als
  20.     DM 5.00 kosten verboten.
  21.   · Spenden sind willkommen
  22.   · Es ist ausdrücklich verboten, das  Programm  oder  damit  erzeugte
  23.     Programme oder Daten direkte oder indirekt militärisch zu nutzen.
  24.   · Folgenden Personen  bzw.  Firmen  ist  es  ausdrücklich  verboten,
  25.     dieses Paket oder Teile hiervon weiterzugeben:
  26.     Fa. Stefan Ossowski, Fa. Karstadt
  27.  
  28.   Hartmut Goebel
  29.   Aufseßplatz 5                    UseNet: hartmut@oberon.nbg.sub.org
  30.   (W-)8500 Nürnberg 40             Z-Netz: HARTMUT@ASN.ZER
  31.   Deutschland                      Fido:   Hartmut Goebel of 2:244/81.1
  32.  
  33.  
  34.   Mein Dank gilt:
  35.   - Matthew Dillon:   für seine genialen DME
  36.   - Volker Rudolph:   für seine zahlreichen  Tips,  Routinen  und  die
  37.                       moralische Unterstützung
  38.   - Werner Speer:     für die Starthilfe in Form des ersten Parsers
  39.   - Tobias Ruland:    für die Unterstützung in Sachen Assembler
  40.   - Thomas Wagner:    für's kreatives Beta-Testen
  41.   - Jürgen Walleneit: für's Disk-Icon
  42.   - hab ich jemand vergessen? Dann auch Dir Dank!
  43.  
  44. ---------------------------------------------------------------------------
  45.  
  46. Inhalt
  47.  
  48.   I Einleitung
  49.     Starten, Die Konfigurationsdatei
  50.  II Makros
  51. III Tasten belegen
  52.  IV Das Verhalten bein Laden/speichern von Dateien
  53.   V Workbench Unterstützung
  54.  VI ARexx Unterstützung
  55. VII Der Application-Port
  56.  
  57.                        ----------------------
  58.                 ----------       I        ----------
  59.                 ----------   Einleitung   ----------
  60.                        ----------------------
  61.  
  62.   AmokEd ist ein frei programmierbarer Editor,  der  auf  dem  Konzept
  63. des bekannten DME vom  Matthew  Dillon  basiert,  aber  unter  anderem
  64. viele Fähigkeiten von AmigaOS 2.0 unterstützt. Er verfügt über  einige
  65. Fähigkeiten,  die  ihn  zu  einem  noch   mächtigeren   (Programmier-)
  66. Werkzeug machen. Hier ein kurzer Überblick:
  67.  
  68.  - Eine reichhaltige  Kommandosprache,  deren  Befehle  sowohl  direkt
  69.    eingegeben, als auch auf Tasten gelegt werden können.  (Jede  Taste
  70.    kann durch Qualifier und Maustasten mit  128  verschiedenen  Macros
  71.    belegt  werden.)  Jede  Tasten  und  Maus-Tasten  Kombination   ist
  72.    belegbar.
  73.  
  74.  -  Eine  ARexx-Schnittstelle  ermöglicht  eine   noch   vielfältigere
  75.    Programmierung von AmokEd durch externe Makros sowie die  Steuerung
  76.    anderer Programme aus AmokEd heraus.
  77.  
  78.  - Ein spezieller 'ApplicationPort' - basierend auf ARexx - ermöglicht
  79.    sehr leicht anwendungsbezogene Erweiterungen, die den Editor selbst
  80.    nicht unnötig aufblähen sollen.
  81.  
  82.  - Variablen ermöglichen eine fexible Macroprogrammierung (z.B. können
  83.    auch Macros in Variablen abgelegt  werden),  ENV:-Variablen  werden
  84.    unterstützt.
  85.  
  86.  -  Vom  Benutzer  definierbare  Menüs,  die  mit  allen  Macros  oder
  87.    Variablen belegt werden können. Auch Menupunkte mit sog.  Checkmark
  88.    sind möglich.
  89.  
  90.  - Schnelles Scrolling, Scrollbalken und Scroll-Gadgets.
  91.  
  92.  - In der Titel-Zeile  jedes  Fensters  werden  Daten  über  den  Text
  93.    angezeigt: Filename, aktuelle Cursorposition im Text, ob  das  File
  94.    geändert wurde ...
  95.    Zukünftige Versionen werden evtl. auch anwenderspezifische  Angaben
  96.    erlauben.
  97.  
  98.  -  Mehrere  Texte  könne  in  verschiedenen   Fenstern   gleichzeitig
  99.    bearbeitet werden, Windows können 'iconified' werden.
  100.    Ab einer der nächten Versionen wird es möglich sein, einen Text  in
  101.    mehreren Fenstern zu bearbeiten.
  102.  
  103.  - AmokEd ist  reentrant  und  kann  resident  geladen  werden.  Siehe
  104.    Befehl 'resident' im AmigaDos-Handbuch.
  105.  
  106.   AmokEd wurde entwickelt, um einige Nachteile des DME zu beheben  und
  107. diesen weiter zu entwickeln. Durch die Programmierung  in  der  streng
  108. stukturierte Sprache Oberon ist er  leicht  zu  erweitern.  Dies  wird
  109. durch den Application-Port noch weiter vereinfacht.
  110.  
  111.   AmokEd nimmt  beliebig  viele  Filenamen  als  Argumente  an.  Diese
  112. Dateien werden gleich nach dem Programmstart automatisch geladen.
  113.  
  114. AmokEd V1.30 benötigt AmigaOS 2.0 oder höher.
  115.  
  116. Starten
  117. -------
  118.  
  119.   AmokEd ist ganz einfach zu starten:
  120.     vom CLI: AmokEd {Template}
  121.       Template:
  122.          FILES/M,SETTING/K,SOURCE/K,
  123.          SD=SCREENDEPTH/K/N,PS=PUBSCREEN/K,PORTNAME/K,
  124.          NOAPPMENU/S,
  125.          TOPEDGE/K/N,LEFTEDGE/K/N,WIDTH/K/N,HEIGHT/K/N
  126.  
  127.     von der WorkBench: einfach anklicken (Multiselect wird unterstützt)
  128.         Die ToolTypes entsprechen jeweils den ausgeschriebenen  Shell-
  129.         Optionen.
  130.  
  131.    Die Optionen sind:
  132.      SETTING <file>       zu ladende Konfigurations-Datei
  133.      SOURCE <name>        führe <name> anstelle dem in der Konfiguration
  134.                           angegebenen Init-File aus
  135.      SD=SCREENDEPTH #     öffne Screen mit # Bitplanes (2^n Farben)
  136.      PS=PUBSCREEN <name>   Name  des  PublicScreens,  auf  dem  AmokEd
  137.                           sein Fenster öffnen soll, bzw.,  den  AmokEd
  138.                           öffnen soll
  139.      PORTNAME <name>      Name für den ARexx-Port
  140.      NOAPPMENU            Es wird _kein_ Eintrag ins Tools-Menü der
  141.                           Workbench generiert
  142.      LEFTEDGE #           Fensterposition x = #
  143.      TOPEDGE #            Fensterposition x = #
  144.      WIDTH                Fensterbreite = #
  145.      HEIGHT #             Fensterhöhe = #
  146.  
  147.      Wird als <name> ein  leerer  String  ("")  übergeben,  so  werden
  148.      die Default-Bezeichnungen benutzt.
  149.  
  150.      Existiert bereits ein Screen bzw. ein Port  mit  dem  angegebenen
  151.      Namen, so wird der Name  eindeutig  gemacht,  indem  eine  Nummer
  152.      angehängt wird. Bsp.: MeinScreen.2
  153.      An die Default-Bezeichungen wird _immer_ eine Nummer angehängt.
  154.  
  155.      Öffnet AmokEd seine Fenster nicht auf dem Workbench-Screen, wird
  156.      ein Eintrag in das Tools-Menü der Workbench generiert. Wird
  157.      dieser Eintrag ausgewählt, bringt AmokEd den Screen nach vorne
  158.      und aktiviert das zuletzt benutzte AmokEd-Fenster.
  159.      Die Option NOAPPMENU verhindert einen solchen Eintrag.
  160.  
  161.      Öffnet AmokEd seine Fenster auf dem Workbench-Screen, können
  162.      Icons auf die Fenster gelegt werden (Stichwort: AppWindow).
  163.      AmokEd versucht dann, die zugehörtigen Dateien zu laden. Hierbei
  164.      werden die Einstellungen (Fenstergröße, lokale Einstellungen)
  165.      von dem Fenster übernommen, in das die Icons gelegt wurden.
  166.  
  167.  
  168. Die Konfigurations-Datei
  169. ------------------------
  170.  
  171. AmokEd  kann  verschiedene  Parameter  in   einer Konfigurationsdatei
  172. ablegen. Die Einstellungen,  die  diese  Datei enthält,  können  z.T.
  173. durch ToolTypes oder CLI-Optionen überschrieben  werden,  z.T.  durch
  174. interne Befehle manipuliert werdeock.
  175.  
  176. Zur Zeit speichert AmokEd folgende Informationen:
  177.  - Fensterposition und -größe, Anzahl der Bitplanes
  178.  - Position und Größe des File-Requesters
  179.  - Schrittweite für TAB
  180.  - Status der Kippschalter WordWrap, SaveTabs, InsertMode, IgnoreCase,
  181.       SaveIcons, NoAppMenu
  182.  - Name  das  Screens,  ARexx-Ports  und  der  Init-Datei,  falls  die
  183.    internen Default-Werte überschreiben wurden
  184.  
  185. Die Suchreihenfolge für die Konfigurations-Datei  ist,  falls  SETTING
  186. nicht angegeben wurde:
  187.   1) AmokEd.config im aktuellen Verzeichnis
  188.   2) die in der Shell-Variablen `AmokEdConfig' angegeben Datei
  189.   3) AmokEd.config im Verzeichnis, in dem AmokEd steht *)
  190.   4) ENV:AmokEd/AmokEd.config
  191.  
  192.   *) nicht, wenn AmokEd resident gehalten wird
  193.  
  194. Es ist empfehlenswert, beim ersten Aufruf  von  AmokEd  ein  Init-File
  195. anzugeben  (mittels  Option/ToolType  SOURCE)  und  anschließend   die
  196. Konfiguration zu speichern.
  197.  
  198.  
  199.                    -------------------------
  200.               --------        II         ----------
  201.               --------      Makros       ----------
  202.                    -------------------------
  203.  
  204.   AmokEd  verfügt  über  ein  große  Anzahl  von  Befehlen,   die   es
  205. ermöglichen, ihn flexibel  zu  programmieren  und  weitgehend  an  die
  206. Bedürfnisse des Benutzers anzupassen.
  207.  
  208.   Mehrer  Befehle  können  zu  Makros  zusammengefasst   werden,   die
  209. wiederum in anderen Makros verwendet werden können.
  210.  
  211.   Jeder Befehl besteht aus  einem  SCHLÜSSELWORT  und  einer  _festen_
  212. Anzahl von ARGUMENTEN (z.Zt. 0..3). Das  Trennzeichen  zwischen  Argu-
  213. menten ist das  SPACE.  Um  Argumente  zu  übergeben,  die  ein  Space
  214. enthalten, müssen diese  in  Klammern  gesetzt  werden.
  215.  
  216. Bsp.: befehl (argument mit spaces).
  217.    Anstelle der Klammern können auch die einfachen Anführungs-/Schluß-
  218.    zeichen (`') benutzt werden.
  219.  
  220.   TEXT, der ausgegeben werden soll, wird ebenfalls  in  Klammern  bzw.
  221. Anführungs-/Schlußzeichen gesetzt.
  222.  
  223.   Befehle können in  Groß-  oder  Kleinschreibung  eingegeben  werden,
  224. Argumente i.A. auch.  Ausnahmen:  eingebaute  Variable  (siehe  dort),
  225. Tastenbezeichnung (siehe dort) und  auszugebender  Text  (logish  :-).
  226.  
  227.   Beispiele für Makros:
  228.      right right (Hallo) right right (Hallo) return
  229.      map f3 (up right) map f5 (down left)
  230.      map f10 ((Hallo))
  231.  
  232.   Nochmal - weil's wirklich wichtig ist:
  233.      Wenn ein Befehl EIN Argument erwartet, dann  nimmt  es  auch  nur
  234.      ein  Argument.  Alle  übrigen  Argumente   werden   für   (einen)
  235.      weitere(n) Befehl(e) gehalten. Also:
  236.  
  237.   map f5 right                   -  `right'  ist  nur  ein  Wort,  wir
  238.                                    brauchen keine Klammern
  239.  
  240.   map f5 (right right)           - wir  wollen  f4  mit  zwei  `right'
  241.                                    belegen,  also  brauchen  wir   die
  242.                                    Klammern, oder das  zweite  `right'
  243.                                    wird nicht auf die Taste gelegt
  244.  
  245.   map c-del `repeat cright del'  - ist bereits als REMEOL
  246.                                    implementiert,  aber  ein  weiteres
  247.                                    Beispiel
  248.  
  249.   Einige Argumente werden ggf. mehrmals durch  den  Befehlsinterpreter
  250. geschickt.
  251. Der MAP-Befehl ist ein gutes Beispiel.
  252. Wenn der MAP-Befehl ausgeführt wird, wird beim ersten Lauf  durch  den
  253. Interpreter die Taste mit dem Tastentext ohne die  äußersten  Klammern
  254. belegt. Wenn die Taste gedrückt wird, wird dieser Text nocheinmal  vom
  255. Interpreter analysiert. Darum muß Text, der  ausgegeben  werden  soll,
  256. in  doppelte   Klammern   eingeschloßen   werden:   ((text)).   Einige
  257. komplexerer Befehlsfolgen:
  258.  
  259.   map f4 (right right (Hallo) wleft)  *RICHTIG*
  260.   map f4 right right (Hallo) wleft    *FALSCH*
  261.  
  262.   map f4 (map f4 ((Hallo)))  - wenn f4 das  erste  Mal  gerückt  wird,
  263.                                belegt  sie  sich  selbst  um  auf  die
  264.                                Ausgabe den Textes (Hallo)
  265.  
  266.   map c-i (repeat tr (( ))) -  Beispiel,  wie  ein  Space  in  MAP  in
  267.                                REPEAT einzubetten ist (durchläuft  den
  268.                                Befehls- interpreter dreimal!)
  269.  
  270.   Ein einfacher Weg, um mit Befehlsfolgen und/oder  Tastaturbelegungen
  271. herum zu spielen, ist entweder die ESC-Taste (dadurch gelangt  man  in
  272. den Befehls- modus) oder a-S zu drücken (alt-shift-s  -  dadurch  wird
  273. die Zeile, in der der Cursor ist, ausgeführt).
  274.   AmokEd kann also problemlos benutzt werden, um Ihre neuen  Tastatur-
  275. belegungen zu entwerfen und zu testen.
  276.  
  277.  
  278.            ----------   STRINGVARIABLEN   ----------
  279.  
  280.   Stringvariablen werden durch ihren Inhalt ersetzt.
  281.   Drei Eingabeformen sind erlaubt:
  282.  
  283.     $varname      - der Variablenname kann nur aus a-z,A-Z,0-9,_,-
  284.                     bestehen
  285.     $(varname)    - alle Zeichen außer `(' und `)' sind erlaubt
  286.     $`varname'    - alle Zeichen außer ``' und `'' sind erlaubt
  287.  
  288.   Die letztetern beiden Formen erlauben ungewöhnliche  Varibalennamen,
  289.   mit Punkten oder andern Zeug.
  290.  
  291.   Es gibt einige spezielle Variablen:
  292.  
  293.     filename      - der aktuelle Filename (ohne Pfad)
  294.     path          - der komplette Pfad zum Verzeichniss der Datei
  295.     modified      - Änderungs-Status des Textes
  296.     scanf         - der zuletzt geSCANFTe String (siehe SCANF unten)
  297.     portname      - der Name des AmokEd-ARexx-Port
  298.     screenname    - der Name des Public-Screens
  299.     findstr       - der aktuelle Suchstring
  300.     repstr        - der aktuelle Ersatzstring
  301.     lineno        - die aktuelle Zeilennummer (1..n)
  302.     colno         - die aktuelle Spaltennummer (1..n)
  303.     margin        - der mit MARGIN gesetzte Rand
  304.     currentline   - der Inhalt der aktuellen Zeile
  305.     winleft, wintop, winwidth, winheight
  306.                   - die aktuellen Pixel-Masse des Fensters
  307.     tmpleft, tmptop, tmpwidth, tmpheight
  308.                   - die mit TMP* gesetzten Pixel-Masse für das nächste
  309.                     Fenster
  310.  
  311.   Andere Variablen werden in folgender Reihenfolge gesucht:
  312.  
  313.   (1) Interne Variablen (siehe SET, UNSET).
  314.       Diese Variablen werden als lokale Variablen des aktuellen
  315.       Prozesses gespeichert und beim Beenden von AmokEd wieder gelöscht.
  316.   (2) Globale Enviroment-Variblen  (siehe  SETENV,   UNSETENV).
  317.   (3) AmokEd-Tastaturbelegungen oder  -Menüdefinitionen.  Dies  ermög-
  318.       licht es, etwas wie $sa-tab anzugeben um die Belegung der  Taste
  319.       shift-alt-tab einzufügen (siehe MAP,  UNMAP  und  Menü-Befehle).
  320.   (4) Das Makro wird an ARexx übergeben, falls installiert.
  321.  
  322.   Variablen von Type (1) und (2) sind, wg. der Kompatibilität zu
  323.   AmigaDos, nicht Groß-Kleinschreibungs-sensibel,
  324.  
  325.   ANMERKUNG: Was ist an folgenden Befehl falsch?
  326.  
  327.     repeat 100 (first ($myvar))
  328.  
  329.   Falsch ist, daß $myvar eingesetzt wird, BEVOR der Repeat  ausgeführt
  330. wird. $myvar könnte Zeichen  enthalten,  die  die  Befehlsbeschreibung
  331. durcheinander bringen könnten.  Wenn  $myvar  z.B.  ein  `('  enthält,
  332. kommt etwas heraus wie `repeat 100  (first  (()),  was  offensichtlich
  333. falsch ist. Durch die Benutzung von `\' kann dies vermieden werden.
  334.  
  335.     repeat 100 (first (\$myvar))   - $myvar wird eingesetzt, wenn  die
  336.                                      Schleife  ausgeführt  wird,   und
  337.                                      nicht vorher
  338.  
  339.   Solche Probleme können auch auftreten, wenn  Sie  Tasten  belegen...
  340. Wahrscheinlich wollen Sie die Variable nicht in dem Moment  eingesetzt
  341. bekommen, wenn Sie  die  Taste  belegen,  sondern  wenn  die  Belegung
  342. ausgeführt wird.
  343.  
  344.   Andererseits ist das durchaus erlaubt:
  345.  
  346.     set x (tlate +1)
  347.     repeat 100 ($x)
  348.  
  349.   Der Text `tlate +1' wird 100mal ausgegeben...
  350.   Würde die Variable  nicht  mit  Klammern  umschloßen  (abhängig  vom
  351. Zusammemhang), würde die  Variable  ausgeführt,  und  nicht  als  Text
  352. ausgegeben.
  353.  
  354.             --------   SPEZIELLE ZEICHEN   ---------
  355.  
  356. `^' wird benutzt, um ein Steuerzeichen einzuleiten.
  357.     Bsp.: ^c entspricht control-c (ASCII-Wert 03)
  358.     Es ist nicht möglich, ^@  (ASCII-Wert  00)  anzugeben,  da  dieses
  359.     Zeichen intern das Zeilenende markiert.
  360.  
  361. `\' Der `Backslash' überschreibt die spezielle Bedeutung des  nächsten
  362.     Zeichens.
  363.     Bsp.: map c-a ((^l))    - belegt ctrl-a mit ASCII-Wert 0C
  364.           map c-a ((\\\^l)) - belegt ctrl-a mit `^l'
  365.                               Das erste `\' überschreibt  das  zweite,
  366.                               das dritte das `^'. Die Taste  ist  dann
  367.                               mit `\^l' belegt.
  368.  
  369.  
  370.             ---------   BEFEHLS LISTE   ---------
  371.  
  372. #                -Rest der Zeile ist Kommentar (für Skript-Files)
  373. (text)           -gibt Text aus, als wäre er direkt eingegeben
  374. taste            -führt Tastaturbelegung als Makro aus (Bsp.: c-a)
  375. header-item      -führt einen Menüpunkt als Makro aus (Bsp.: Project-Save)
  376. ABORT            -bricht Makroausführung ab
  377. APPL             -rufe Application auf (siehe VII. `Application'-Port)
  378. APPLCLOSE        -beendee Application  (siehe VII. `Application'-Port)
  379. ARPBSAVE         -BSAVE   FileRequester    \
  380. ARPINSFILE       -INSFILE FileRequester     |
  381. ARPLOAD          -NEWFILE FileRequester     | wenn ASL-Lib verfuegbar
  382. ARPSAVE          -SAVEAS  FileRequester     |
  383. ARPSAVECFG       -SAVECONFIG  FileRequester |
  384. ARPSOURCE        -SOURCE  FileRequester    /
  385. ASCII            -zeigt den ASCII-Wert des Zeichens unter dem Cursor an
  386. BACK             -identisch mit BS
  387. BACKTAB          -Tabulatorsprung rückwärts
  388. BCOPY            -kopiere Block vor die Cursorzeile
  389. BDELETE          -lösche den Block aus dem Text
  390. BLOCK            -markiere Anfang/Ende des Blocks
  391. BMOVE            -verschiebe den Block vor die Cursorzeile
  392. BOTTOM           -springe zum Textende
  393. BS               -`backspace' (lösche Zeichen links vom Cursor)
  394. BSAVE file       -speichere den Block in <file>
  395. BSOURCE          -`source' Block wie ein Skript-File
  396. CD dir           -setze aktuelle Verzeichnis des Textes auf <dir>
  397. CHECKRESET hdr-item   -löscht Checkmark im Menüpunkt hdr-item
  398. CHECKSET hdr-item     -setzt Checkmark im Menüpunkt hdr-item
  399. CHECKTOGGLE hdr-item  -schaltet Checkmark im Menüpunkt hdr-item um
  400. CHFILENAME name  -ändere den Namen des bearbeiteten Files
  401. CLEARMAP         -lösche Benutzer-Tastaturbelegung und stelle System-
  402.                   Belegung her
  403. DEL              -`delete' (lösche Zeichen unterm Cursor)
  404. DELINE           -lösche Zeile (siehe UNDELINE)
  405. DOWN             -Cursor runter
  406. DOWNADD          -Cursor runter; wenn am Textende, füge Zeile an
  407. ESC              -schalte Befehlseingabezeile ein/aus
  408. ESCIMM arg       -schalte Befehlseingabezeile ein und zeige dort <arg> als
  409.                   vordefinierte Eingabe
  410. EXECUTE comm     -führe CLI-Befehl aus **)
  411. FIND string      -setze Suchstring und führe ein NEXT aus
  412. FINDR fstr rstr  -setze Such/Ersatzstring und führe ein NEXTR aus
  413. FINDSTR          -setze Suchsting
  414. FIRST            -spring zu Spalte 1
  415. FIRSTNB          -springe zum ersten Nicht-Space-Zeichen in der Zeile
  416. GOTO BLOCK       -springe zum Anfang des markierten Blocks, bzw. Textanfang
  417. GOTOCOL          - setze Cursor in Splate n (Spalten beginnen mit 1)
  418. GOTO END         -springe zum Ende des markierten Blocks, bzw. nicht
  419. GOTO START       -identisch mit GOTO BLOCK
  420. GOTO [+/-]n      -springe zur absolut/relativ angegebeben Zeile
  421. HEIGHT n         -setze die Höhe in Pixels für alle weitern neuen Fenster
  422. ICONIFY          -`iconify' das Fenster (siehe unten)
  423. IF cnd act       -IF/WHILE/IFELSE .. (siehe unten)
  424. IFELSE cnd ifact elseact -(siehe unten)
  425. INDENT           -rückt Zeile um die Einrückung der darüber weiter ein
  426. INSERT text      -fügt <text> ein, unabhängig von InsertMode
  427. INSFILE file     -füge <file> in den Text ein
  428. INSLINE          -füge Zeile über der Cursorzeile ein
  429. JOIN             -verbinde nächste Zeile mit dieser
  430. JUSTIFY typ      -erzeuge Blocksatz für diese Zeile mit Breite $margin
  431.                   <typ>= full -> Blocksatz
  432.                   (weitere noch nicht implementiert)
  433. LAST             -springe hinter letztes Nicht-Space-Zeichen der Zeile
  434. LEFT             -Cursor links
  435. LEFTEDGE n       -setze die linke Kante in Pixels für alle neuen Fenster
  436. MAP key map      -belege Taste <key> mit <map>
  437. MARGIN n         -setze rechten Rand für WordWrap und Reformat (siehe dort)
  438. MATCHBRACKET     -sucht die passende Klammer
  439. MENUADD  hdr item cmd -füge Menüpunkt an
  440. MENUADDSEP hdr        -füge Trennzeile an das Menü an
  441. MENUADDT hdr item cmd -füge Menüpunkt mit CheckMark an
  442. MENUCLEAR             -lösche das ganze Menü
  443. MENUDEL hdr item      -lösche eine Menüpunkt
  444. MENUDELHDR hdr        -lösche ein Untermenü
  445. MENUOFF               -schalte Menü aus (mehrfache Aufrufe werden gestapelt)
  446. MENUON                -schalte Menü ein (mehrfache Aufrufe werden gestapelt)
  447. MULTIREPLACE f s -interactives Suchen und Ersetzen
  448. MYPRI n          -setze Task-Priorität auf n (-128<=n<=127)
  449. NEWFILE file     -ersetzt aktuelle Text durch das neue <file>
  450. NEWWINDOW        -öffne ein neues Editor-Fenster
  451. NEXT             -suche die nächste Stelle, an der der Suchstring auftritt
  452. NEXTR            -suche nächstes Auftreten und ersetze
  453. NEXTWIN          -aktiviere nächstes Text-Fenster *)
  454. NOSCRUPDATE      -schaltet Bildschirmausgabe für die Dauer des Makros ab
  455. NULL             -mache nichts
  456. OBERROR action   -Oberon-Fehler-Unterstützung (siehe unten)
  457. OVERWRITE text   -schreibt <text> über vorhandenen, unabhängig von InsertMode
  458. PAGEDOWN         -blättere eine Seite abwärts (siehe PAGESET)
  459. PAGESET n        -setze Seitengröße für PAGEUP/DOWN auf n Prozent Fenstergröße
  460. PAGEUP           -blättere eine Seite aufwärts (siehe PAGESET)
  461. PING n           -setze Textmarkierung (0-9)
  462. PONG n           -springe zu eine vorher gesetzten Textmarkierung (0-9) *)
  463. PREV             -suche die vorherige Stelle, an der der Suchstring auftritt
  464. PREVR            -suche vorheriges Auftreten und ersetze
  465. PREVWIN          -aktiviere vorhergehendes Text-Fenster *)
  466. POPMARK          -hole Markierung von Stapel und zeige den markierten Block
  467. PURGEMARK        -lösche den Stapel der Blockmarkierungen
  468. PUSHMARK         -lege markierten Block auf den Stapel und lösche Markierung
  469. QUIT             -beende
  470. RECALL           -gehe in Befehlszeile und zeige den zuletzt eingegebenen
  471.                   Befehl an. Muß auf eine Taste gelegt sein (c-esc).
  472. REFORMAT         -bricht den Absatz um
  473.                   (Absatzende: Leerzeile oder weiter eingerückte Ziele)
  474. REMSOL           -lösche Text link vom Cursor bis zum Zeilenanfang
  475. REMEOL           -lösche Text unter und rechts vom Cursor
  476. REPEAT cnd comm  -siehe unten
  477. REPSTR string    -setzte Ersatzstring
  478. RESETTOGGLE toggle -lösche Kippschalter (siehe unten)
  479. RESIZE cols rows -ändere Größe des aktuellen Fensters (Bsp.: resize 70 23)
  480. RETURN           -identisch mit (FIRST DOWNADD)
  481. RIGHT            -Cursor rechts
  482. RX               -rufe ARexx-Makro, kein Argument  (RX makroname) (s. unten)
  483. RX1              -rufe ARexx-Makro, ein  Argument  (RX makroname arg)
  484. RX2              -rufe ARexx-Makro, zwei Argumente (RX makroname arg1 arg2)
  485. RXS              -rufe ARexx-Befehlsfolge direkt auf
  486. SAVEAS file      -speichere aktuellen Text als <file>
  487. SAVECONFIG       -speichere Standard-Einstellungen
  488. SAVEMAP file     -speichere Benutzer-Tastaturbelegung in <file>
  489. SAVEOLD          -speichere aktuellen Text unter seinen Namen
  490. SAVESMAP file    -speichere alle Tastaturbelegungen incl. Systembelegung
  491. SCANF ctlstr     -scan den String an der Curorposition (siehe unten)
  492. SCREENBOTTOM     -setze Cursor in die letzte Zeile des Fensters
  493. SCREENTOP        -setze Cursor in die erste Zeile des Fenstern
  494. SCROLLDOWN       -rolle Text eine Zeile nach oben, ohne Cursor zu bewegen
  495. SCROLLUP         -rolle Text eine Zeile nach unten, ohne Cursor zu bewegen
  496. SET var str      -erzeuge/ändere eine interne Variable
  497. SETENV var str   -erzeuge/ändere eine Umgebungs-Variable (WB1.3 ENV:)
  498. SETFONT font size-setze den Font des Fensters (Bsp.: setfont topaz.font 11)
  499. SETPATTERN pat   -setze das Pattern für den File-Requester
  500. SETTOGGLE toggle -setze Kippschalter (siehe unten)
  501. SOURCE file      -`source' ein Skript-File
  502. SPLIT            -spalte die Zeile an der Cursorposition
  503. SWAPCHAR         -vertaucht Zeichen unterm Cursor mit dem rechts davon
  504. SWAPMARK         -PUSHMARK, tausche obere 2 Markierungen auf Stapel, POPMARK
  505. TAB              -Tabulatorsprung vorwärts
  506. TABINDENT        -rückt Zeile um die mit TABSTOP festgelegte Schrittweite ein
  507. TABSTOP n        -setze Tabulatorstop alle n Zeichen
  508. TABUNINDENT      -rückt Zeile um die mit TABSTOP festgelegte Schrittweite ein
  509. TITLE string     -zeige <string> in der Titelzeile des Fensters
  510. TLATE [+/-]n     -gib Zeichen unter dem Cursor ASC-Wert n (absolut/relativ)
  511. TMPHEIGHT n      -setze Höhe in Pixels nur für das nächste neue Fenster
  512. TMPLEFT n        -setze linke Ecke in Pixels nur für das nächste neue Fenster
  513. TMPTOP n         -setze oberen Abstand in Pixels nur für das nächste neue Fenster
  514. TMPWIDTH n       -setze Breite in Pixels nur für das nächste neue Fenster
  515. TOGGLE toggle    -schalte Kippschalter um (siehe unten)
  516. TOMOUSE          -bewege den Cursor zur Mausposition
  517. TOP              -springe zum Textanfang
  518. TOPEDGE n        -setze die Oberkante in Pixels für alle neuen Fenster
  519. UNBLOCK          -lösche aktuelle Blockmarkierung
  520. UNDELINE         -holt die zuletzt mit DELINE gelöschte Zeile zurück
  521. UNDO             -mache Anderungen in der aktuelle Zeile rückgängig (muß auf
  522.                   eine Taste gelegt werden, damit's funktioniert)
  523. UNINDENT         -rückt Zeile eine Stufe weiter aus
  524. UNJUSTIFY        -entferne mehrfache Leerzeichen zw. des Wörtern (Flattersatz)
  525. UNMAP key        -lösche Belegung der Taste <key>
  526. UNSET var        -lösche interne Variable
  527. UNSETENV var     -löschen Umgebungs-Variable (WB1.3 ENV:)
  528. UP               -Cursor hoch
  529. WHILE cnd act    -(siehe unten)
  530. WIDTH n          -setze die Breite in Pixels für alle weitern neuen Fenster
  531. WLEFT            -gehe an den Anfang des vorherigen Worts; wenn innerhalb
  532.                   eines Wortes, dann an den Anfang diese Wortes
  533. WRIGHT           -gehe an den Anfang des nächsten Worts
  534.  
  535. *) PONG springt auch in ein anderes Textfenster. Wenn Sie ein Tool ein-
  536.    setzten, das das Fenster unter der  Maus  aktiviert  (z.B.  DMouse,
  537.    AutoPoint), funktioniert dies nicht  mit  dem  gewünschten  Effekt.
  538.    Gleiches gilt für NextWin, PrevWin
  539.  
  540. **) Die Ein- und Ausgabe dieser Befehle erfolgt über die Shell, von
  541.     der aus AmokEd gestartet wurde. Wird die Ein-/Ausgabe nicht
  542.     gewünscht, so muß sie per Hand von/nach NIL: umgeleitet werden.
  543.     Wurde AmokEd von der Workbench oder mit 'run >NIL: <NIL: ...'
  544.     gestartet, so haben die Befhele kein Ein-/Ausgabe-Fenster.
  545.  
  546.  ---------- Weitere Inforamtionen zu kompizierteren Befehlen ------------
  547.  
  548. INDENT        - rückt die Zeile um soviele  Zeichen  weiter  ein,  wie
  549.                 die   nächste   weniger   weit   eingerückte   darüber
  550.                 eingerückt ist. (Ich liebe Deutsch :-)
  551.  
  552.                 Bsp.:
  553.                 0.2.
  554.                 |   Zeile 1     <- diese Zeile ist weniger weit eingerückt
  555.                 |     Zeile 2
  556.                 |    Zeile 3    <- in dieser Zeile steht der Cursor
  557.  
  558.                 Nach dem ersten INDENT
  559.                 0.2.4.6.8.
  560.                 |   Zeile 1
  561.                 |     Zeile 2   <- diese Zeile ist weniger weit eingerückt
  562.                 |       Zeile 3 <- der Cusor steht immde noch hier
  563.  
  564.                 Und noch ein INDENT
  565.                 0.2.4.6.8.0.2.4.
  566.                 |   Zeile 1
  567.                 |     Zeile 2
  568.                 |            Zeile 3
  569.  
  570. UNINDENT      - rückt soweit aus, daß die Einrückung mit der  nächsten
  571.                 weniger weit eingerückten Zeile darüber übereinstimmt.
  572.  
  573.                 Bsp.:
  574.  
  575.                 |   Zeile 1
  576.                 |     Zeile 2   <- diese Zeile ist weniger weit eingerückt
  577.                 |            Zeile 3  <- hier steht der Cursor
  578.  
  579.                 Nach dem ersten UNINDENT
  580.                 0.2.4.6.8.
  581.                 |   Zeile 1     <- diese Zeile ist weniger weit eingerückt
  582.                 |     Zeile 2
  583.                 |     Zeile 3   <- der Cusor steht immde noch hier
  584.  
  585.                 Nach dem zweiten UNINDENT
  586.                 0.2.4.6.8.
  587.                 |   Zeile 1
  588.                 |     Zeile 2
  589.                 |   Zeile 3
  590.  
  591. MENUOFF        -  Diese  Befehle  schalten  das  Menü  ein  bzw.  aus.
  592. MENUON          Für Leute, die eine Menge MENUADD  in  ihrer  `.aedrc'
  593.                 haben, ist es gut zu wissen,  daß  MENUADD  wesendlich
  594.                 schneller arbeitet, wenn das Menü vorher ausgeschaltet
  595.                 wird. (Danach natürlich wieder einschalten!)
  596.                  Die Aufrufe sind stapelbar. D.h.  wenn  Sie  MENUOFF,
  597.                 sagen wir, zweimal aufrufen, dann benötigen  Sie  auch
  598.                 zwei  MENUON,  um  das  Menü   wiedr   einzuschalten.
  599.                 Andersrum funktioniert's natürlich nicht :-)
  600.  
  601. CHECKRESET    - Hierbei  wird  beachtet,  daß  beim  Aufruf  vom  Menü
  602. CHECKSET        heraus die CheckMark nicht behandelt  wird  :-)  Damit
  603. CHECKTOGGLE     ist es leicht  möglich,  als  cmd  einfach  die  Taste
  604.                 anzugeben, die äquvivalent belegt ist.
  605.  
  606.                 Bsp.:
  607.                   menuaddt test test c-help
  608.                   map c-help (toggle 5 checktoggle test-test)
  609.  
  610.                 Auch Mutal-Exclude ist möglich. Bsp.:
  611.                   menuaddt test test1  -help
  612.                   menuaddt test test2 s-help
  613.                   map  -help (checkreset test-test2 checkset test-test1)
  614.                   map s-help (checkreset test-test1 checkset test-test2)
  615.                   map c-help (checktoggle test-test1 checktoggle test-test2)
  616.  
  617. SCANF cltstr  -  Dieser Befehl ist gleichbedeutend mit der  C-Funktion
  618.                 scanf(). Es werden jedoch nur Strings gescannt.
  619.  
  620. REPEAT n arg  -  Wiederhole <arg> n-mal
  621.                  Außer einer Nummer kann n folgendes sein:
  622.  
  623.                   line    aktuelle Zeilennummer (Zeilen beginnen bei 1)
  624.                   lbot    Anzahl Zeilen zum Textende, mit der Cursorzeile
  625.                   cleft   Spaltennummer (Spalten beginnen bei 0)
  626.                   cright  Anzahl Zeichen bis zum Zeilenende (EOL),
  627.                           incl. Zeichen unterm Cursor
  628.                   tr      Anzahl Zeichen zum nächsten Tabulatorstop
  629.                   tl      Anzahl Zeichen zum vorherigen Tabulatorstop
  630.                   lwintop Anzahl Textzeilen zur obersten Windowzeile
  631.  
  632.                  Verschiedene  Befehle  können   die   Repeat-Schleife
  633.                 abbrechen: Jeder FIND[R], NEXT[R], PREV[R], in dem der
  634.                 Suchstring nicht gefunden wird,  bricht  die  Schleife
  635.                 (und das Makro) ab. Das Selbe geschieht, bei Befehlen,
  636.                 die über die Textgrenzen  hinaus  gehen  konnen  (z.B.
  637.                 UP, DOWN, LEFT, RIGHT ...).
  638.                  Natürlich beendet auch ABORT das Makro.
  639.  
  640.                  Wenn Sie als Parameter -1  angeben,  so  wird  REPEAT
  641.                 ewig ausgeführt  (genau  genommen  $7FFFFFFF-mal,  was
  642.                 eigentlich reichen müßte), oder bis zu einem Abbruch.
  643.  
  644.              Bsp.: Suchen/Ersetzten im ganzen Text (geht natürlich
  645.                    besser mit MULTIREPLACE :-)
  646.  
  647.                map c-R (escimm (findstr ) escimm (repstr ) repeat -1 nextr)
  648.  
  649. IF [!]bedingung arg
  650. WHILE [!]bedingung arg
  651. IFELSE [!]bedingung ifarg elsearg
  652.  
  653.               -  Wenn die angegebenen Bedingung erfüllt ist, führe das
  654.                 Argument aus. Bei IFELSE ansonsten das  Else-Argument.
  655.                 Bei  WHILE  wird  das  Argument  solange   ausgeführt,
  656.                 solange die Bedingung erfüllt ist. (Vorsicht!)
  657.  
  658.                  Ein ggf. vorangestelltes `!' invertiert die Logik.
  659.  
  660.                  Bedingungen:
  661.  
  662.                 [i]#    Kippschalter [i]# gesetzt (siehe unten)
  663.                 t       Cursor in Zeile 1
  664.                 b       Cursor in der letzten Zeile
  665.                 l       Cursor in Spalte 0
  666.                 r       Cursor am Zeilenende (Space darunter und dahinter)
  667.                 m       Text wurde geändert (modified)
  668.                 i       Einfügemodus eingeschaltet (insertmode on)
  669.                 x[<=>]# Cursor in Spalte # (beginnen mit 1) *)
  670.                 y[<=>]# Cursor in Zeile # (beginnen mit 1)  *)
  671.                 cl      Zeichen unter Cursor ist Kleinbuchstabe (`a'..`z')
  672.                 cu      Zeichen unter Cursor ist Großbuchstabe (`A'..`Z')
  673.                 ca      Zeichen unter Cursor ist alpha-numerisch
  674.                         (`a'..`z', `A'..`Z',`0'..`9', `_', 192..255)
  675.                 cn      Zeichen unter Cursor ist Ziffer
  676.                 c[<=>]# Zeichen unter Cursor hat ASCII-Wert # *)
  677.                 cb      Curosr ist innerhalb des markierten Blocks
  678.  
  679.                 *) eines oder eine Kombination der Zeichen `<', `=', `>',
  680.                    gefolgt von einer Dezimalzahl. Bsp.: y=>23
  681.  
  682.                    if c<32  .. Zeichen unterm Cursor ist kleiner als 32
  683.                    if c<>32 .. Zeichen unterm Cursor ist ungleich 32
  684.                    if !c=32 .. dito
  685.                    while !b down
  686.  
  687.                 Bsp.: simulieren eines Einfügemodes-Kippschalters
  688.                       (muß natürlich in einer Zeile eingegeben werden)
  689.  
  690.                    map a-i (ifelse 0 (toggle 0 settoggle insertmode)
  691.                                      (toggle 0 resettoggle insertmode))
  692.  
  693.                 Bsp.: solange Kleinbuchstabe: mache groß, gehe nach rechts
  694.  
  695.                    map c-U (while cl (tlate -32 right)
  696.  
  697. ICONIFY       -  Dies ist eine besondere Fähigkeit des AmokEd:
  698.                  Das Textfenster wird auf  die  Titelzeile  reduziert.
  699.                 Dadurch behalten Sie auch bei vielen Fenstern noch den
  700.                 Überblick.
  701.                 · merkt sich alte Fenstergröße und -position
  702.                 · merkt sich die Position des `iconified'-Fensters für
  703.                   weitere `iconify'
  704.  
  705. TOGGLE toggle
  706. SETTOGGLE toggle
  707. RESETTOGGLE toggle
  708.  
  709.               - Mir  diesen  Befehlen  werden  Kippschalter  (toggles)
  710.                 geschaltet.
  711.  
  712.                  Es gibt 256 globale Toggles, die im gesammtem  AmokEd
  713.                 Gültigkeit haben, sowie für jeden Text  16  texteigene
  714.                 Toggles. Zudem gibt es einige spezielle  Toggles,  die
  715.                 z.B. den Einfügemodus schalten.
  716.  
  717.                 Im Einzelnen gibt es folgende Toggles:
  718.  
  719.                 i0..i15      texteigener Toggles (ein `i' wird vorangestellt)
  720.                 0..255       globaler Toggle
  721.                 wordwrap     automatischer Zeilenumbruch  +)
  722.                 insertmode   Einfügemodus +)
  723.                 savetab      File mit Tabs abspeichern (siehe unten) +)
  724.                 modified     Änderungs-Status das Textes +)
  725.                 numlock      NumLock für Zehnerblock
  726.                 ignorecase   Suchen unabhängig von Groß-/Kleinschreibung
  727.                 saveicons    speichere Texte und Configs mit Icon ab
  728.  
  729.                  +) diese Toggles sind ebenfalls texteigen
  730.  
  731. OBERROR action
  732.  
  733.              Fehleruntersützung für AmigaOberon.  Diese  Funktion  ist
  734.              nur nutzbar, wenn die  oberonsupport.library  installiert
  735.              ist.  Diese  Lib  wird  ab  der  nächten   Oberon-Release
  736.              mitgeliefert, ist aber jetzt schon auf AMOK#72 zu finden.
  737.  
  738.              Auf AMOK#69 befindet sich eine Beta-Version,  die  jedoch
  739.              fehlerhaft ist.
  740.  
  741.              action: read     liest die Fehlerdatei und zeigt ersten
  742.                               Fehler
  743.                      first    zeigt den ersten Fehler an
  744.                      next     zeigt den nächsten Fehler an
  745.                      prev     zeigt den vorherigen Fehler an
  746.                      current  zeigt den aktuellen Fehler nochmal
  747.  
  748.  
  749.                      --------------------------
  750.               ----------       III          ----------
  751.               ----------   Tasten belegen   -----------
  752.                      --------------------------
  753.  
  754.   In Abschnitt II haben wir gesehen, wie AmokEd zu  programmieren  ist
  755. (ja, ich denke `programmiernen' ist der richitge Ausdruck.
  756.   Richtig interessant wird es jedoch erst, wenn man  die  Markros  auf
  757. Tasten legt. Dies können Sie auf drei Arten tun:
  758.  
  759.   1. Für Ihre Standardbelegung erstellen Sie am besten  ein  `.aedrc',
  760.      das  die  gewünschten  Tastaturbelegungen,  die  Menudefinitionen
  761.      etc. enthält.
  762.   2. Wenn Sie während der laufenden Arbeit mit AmokEd  Tasten  belegen
  763.      wollen, weil Sie z.B. den Text `Rübennase' oft  benötigen,  geben
  764.      Sie den MAP-Befehl einfach in der Befehlszeile ein.
  765.   3. Wollen Sie  die  neue  Makrodefinition  zudem  in  Ihre  `.aedrc'
  766.      aufnehmen, so geben Sie sie dort ein, und führen die  neue  Zeile
  767.      mit der Tasten- kombination `a-S' aus. Abspeichern, fertig!
  768.  
  769. TASTATUR
  770.  
  771.   Bei AmokEd ist, anders als bei vielen Text-Editoren, JEDE Taste  der
  772. Amiga-  Tastatur  belegbar,  egal  ob  mit  oder   ohne   `Qualifier'.
  773. Qualifier sind hier Tasten wie  Shift,  Ctrl,  Amiga,  aber  auch  die
  774. Maustasten.
  775.   Es hat sich eigentlich nur aus der Gewohnheit  heraus  ergeben,  daß
  776. z.B. die <Return>-Taste ein RETURN ausführt und die <Up>-Taste ein  UP
  777. etc. Aber Sie können _alle_ Tasten auch völlig anders belegen.
  778.  
  779.   Die Tasten werden nach ihrer Aufschrift benannt, mit einigen Ausnahmen:
  780.  
  781.   · `Rückschritt' (Backspace) heißt `BS'.
  782.   · den Tasten des Zehnerblocks wird `NK' verangestellt, außer bei
  783.     der `Enter'-Taste, die heißt `ENTER'.
  784.   · Die vier Cursor-Tasten heißen `UP', `DOWN', `LEFT' und `RIGHT'.
  785.  
  786.  
  787.   Tasten belegen
  788.  
  789.   Tasten werden mit dme MAP-Befehl belegt (siehe oben).
  790.   <key> entspricht dabei folgender Syntax:
  791.  
  792.     [qual-]<taste>  qual:  eine  Kombination   aus    den    Qualifer-
  793.                            Kennungen, gefolgt von einem Bindestrich `-'
  794.                     taste: Tastenaufschrift bzw. -name
  795.  
  796.     Qualifier: `a'   ALT
  797.                `s'   SHIFT
  798.                `c'   CTRL
  799.                `A'   AMIGA
  800.                `L', `M', `R'  linke, mittlere, rechte Maustaste
  801.  
  802.   --- Beispiele ---
  803.  
  804.     tab      tab
  805.     -tab     tab
  806.     a-a      ALT a
  807.     A-a      AMIGA a
  808.     sA-a     SHIFT AMIGA a
  809.     s-tab    SHIFT tab
  810.     c-tab    CTRL tab
  811.     ac-?     ALT-CTRL ?
  812.     s-f5     SHIFT F5
  813.     nk0      Zehnerblock 0
  814.     cs-nk0   CTRL SHIFT Zehnerblock 0
  815.     s-.      SHIFT . (':' auf deutschen Tastaturen)
  816.     L-f10    LINKE MAUSTASTE f10
  817.     L-lmb    Linke Maustaste gedrückt
  818.     L-mmove  Maus bewegt mit gedrückter linker Maustaste
  819.     LR-lmb   Linke Maustaste gedrückt, während rechte Maustaste
  820.              gedrückt bleibt
  821.  
  822.   -----------------
  823.  
  824. MAUSTASTEN
  825.  
  826.   Auch die Tasten der Maus können belegt werden,
  827.  
  828.     Die drei Maustasten heißen `LMB', `MMB', `RMB'.
  829.  
  830.     Die Standardbelegung ist folgende:
  831.  
  832.     linker  Knopf: Setze den Cursor an die Mausposition (TOMOUSE)
  833.     rechter Knopf: `iconify' Fenster (ICONIFY), nur wenn Menü aus ist
  834.  
  835.     Linken Knopf gedrückt halten, während die Maus bewegt wird,  zieht
  836.     den Cusor mit.
  837.  
  838.  
  839. Maustasten belegen
  840.  
  841.     Die Maustasten dienen sowohl als Qualifier (siehe oben), als  auch
  842.   als Tasten.
  843.     Dadurch  können  sie  eine  Taste  belegen,  die  eine   gedrückte
  844.   Maustaste erfordert
  845.  
  846.     map  L-a    ((Linke Maustaste und `a'))
  847.  
  848.   genauso, wie die Maustasten selbst
  849.  
  850.     map  L-lmb  ((Linke Maustaste als Taste))
  851.  
  852.     Beachten Sie, daß hierzu der Qulifier <Linke  Maustaste>  `L'  und
  853.   die linke Maustaste selber `lmb' angegeben werden müssen.
  854.  
  855.   Wenn Sie eine Maustaste selbst und diese Maustaste als Qualifier belegten,
  856.  
  857.     map L-lmb (tomouse)
  858.     map L-a   ((Hallo))
  859.  
  860.   beachten Sie bitte, daß die erste  Belegung  immer  dann  ausgeführt
  861.   wird, auch wenn Sie L-a ansprechen möchten: BEIDE  Belegungen  würde
  862.   ausgeführt!
  863.     Um Verwirrungen zu vermeiden,  sollten  Sie  die  Standardbelegung
  864.   der rechte Maustaste (belegt mit ICONIFY) löschen (UNMAP), wenn  sie
  865.   diese als Qualifier benutzten wollen.
  866.  
  867.     Die MAUSBEWEGUNG wird belegt, indem  Sie  eine  oder  mehrere  der
  868.   Maus-Qualifier (`L', `M', `R') und als Taste `mmove'  angeben.  Also
  869.   so:
  870.  
  871.     map L-mmove ((Maus bewegt mit gedrückter linker Maustaste))
  872.     map LR-lmb  ((Linke Maustaste drückt, rechte Maustaste bleibt gedrückt))
  873.  
  874.   Wie wäre es damit: Die Zeichen under dem  Cursor  in  Großbuchstaben
  875.                      wandeln, solange die Mause bewegt wird?
  876.  
  877.     map LR-mmove (tomouse if cl (tlate -32))
  878.  
  879.  
  880. HINWEISE
  881.  
  882.     Die normale Amiga-Maus hat nur zwei Tasten, eine  linke  und  eine
  883.   rechte   (LMB,   RMB   -   logisch!).   Eine   ggf.   angeschloßenen
  884.   Drei-Tasten-Maus wird auch unterstützt.
  885.  
  886.     Jede Taste kann mit einer Kombination aus Shift, Alt, Ctrl,  Amiga
  887.   und den Maustasten (oder gar keiner)  bestimmt  werden.  Mit  diesen
  888.   sechs Qualifiern (sieben bei Drei-Tasten-Maus)  konnen  jeder  Taste
  889.   bis zu 64 (128) Belegungen zugewiesen werden.
  890.  
  891.     Die CAPS-LOCK-Taste,  wenn  sie  leuchtet,  ist  für  Alpha-Tasten
  892.   gleichbedeutend mit <Shift>.
  893.  
  894.     Die Kombination  Alt-Amiga  (aA)  ist  nicht  sehr  brauchbar,  da
  895.   Intuition  sie  als  Mause-SELECT   interpretiert.   Andere   Amiga-
  896.   Kombinationen werden  von  Intuition  für  Mausbewegung  und  andere
  897.   Dinge benutzt. Einige  andere  Qulifier-Kombinationen  können  wegen
  898.   einer speziellen Bedeutung auch unbrauchbar sein.
  899.  
  900.  
  901. Die Standardbelegung
  902.  
  903.     Alle  druckbaren  Ascii-Tasten  sind  mit  ihrem  Ascii-Equiavlent
  904.   belegt. BS, DEL, UP, DOWN, LEFT, RIGHT, TAB, S-TAB, und  ENTER  sind
  905.   korrekt belegt. Und das ist die Standardbelegung:
  906.  
  907.     map (a-c)       (bcopy)
  908.     map (a-d)       (bdelete)
  909.     map (a-down)    (scrolldown)
  910.     map (a-l)       (while cu (tlate +32 right))
  911.     map (a-m)       (bmove)
  912.     map (a-r)       (nextr)
  913.     map (a-s)       (bsource)
  914.     map (a-u)       (while cl (tlate -32 right))
  915.     map (a-up)      (scrollup)
  916.     map (bs)        (bs)
  917.     map (c-/)       (escimm (find ))
  918.     map (c-])       (ref)
  919.     map (c-[)       (ctags)
  920.     map (c-1)       (goto block)
  921.     map (c-b)       (block)
  922.     map (c-c)       ()
  923.     map (c-del)     (remeol)
  924.     map (c-down)    (pagedown)
  925.     map (c-esc)     (recall)
  926.     map (c-f)       (reformat)
  927.     map (c-g)       (escimm (goto ))
  928.     map (c-i)       (insertmode on)
  929.     map (c-j)       (join)
  930.     map (c-l)       (wleft)
  931.     map (c-n)       (next)
  932.     map (c-o)       (insertmode off)
  933.     map (c-p)       (prev)
  934.     map (c-q)       (quit)
  935.     map (c-r)       (wright)
  936.     map (c-s)       (split first down)
  937.     map (c-u)       (unblock)
  938.     map (c-up)      (pageup)
  939.     map (c-w)       (wordwrap toggle)
  940.     map (del)       (del)
  941.     map (down)      (down)
  942.     map (enter)     (return)
  943.     map (esc)       (esc)
  944.     map (f1)        (escimm (insfile ))
  945.     map (f10)       (saveold quit)
  946.     map (f2)        (escimm (newfile ))
  947.     map (f3)        (escimm (newwindow newfile ))
  948.     map (f6)        (saveold iconify)
  949.     map (f7)        (escimm (bsave ))
  950.     map (f8)        (saveold escimm (newfile ))
  951.     map (f9)        (saveold)
  952.     map (L-lmb)     (tomouse)
  953.     map (L-mmo)     (tomouse)
  954.     map (left)      (left)
  955.     map (R-rmb)     (iconify)
  956.     map (return)    (return insline up firstnb down)
  957.     map (right)     (right)
  958.     map (s- )       (( ))
  959.     map (s-del)     (deline)
  960.     map (s-down)    (bottom)
  961.     map (s-left)    (first)
  962.     map (s-right)   (last)
  963.     map (s-tab)     (backtab)
  964.     map (s-up)      (top)
  965.     map (sa-s)      (unblock block block bsource)
  966.     map (tab)       (tab)
  967.     map (up)        (up)
  968.     map `a-)'       (`:-)')    ein Standard-Smily
  969.  
  970.  
  971.                   -------------------------------
  972.            ----------          VI             ----------
  973.            ----------   ARexx Unterstützung   ----------
  974.                   -------------------------------
  975.  
  976.   Sie haben von ARexx vollen Zugriff auf alle Funktionen  von  AmokEd.
  977.   Zudem gibt es einige Befehle, die  Sie  nur  von  ARexx  oder  einem
  978. ARexx-Programm nutzen können (z.B. Rückgabewerte).
  979.  
  980. ARexx-Makros aufrufen
  981.  
  982.   Es gibt drei Möglichkeiten, externe ARexx-Makros aufzurufen:
  983.   · Die Befehle RX, RX1, RX2 rufen das als erstes  Argument  übergeben
  984.     ARexx-Makro mit keinem, einem oder  zwei  Argumenten  auf.  Wollen
  985.     sie mehr Argumente übergeben, benutzen Sie einfach RX1 und  setzen
  986.     alle Argumente in Klammern. Bsp.:
  987.           rx  demo
  988.           rx1 renumcomproc 119
  989.           rx2 DelAllAsterix 23 28
  990.           rx1 MakroMitVielenArgs (1 2 3 4 5 6 7)
  991.  
  992.   · Die  zweite  Möglichkeit   ARexx-Makros   aufzurufen   ist,    den
  993.     Markonamen einfach in der Befehlszeile  einzugeben,  dahinter  die
  994.     Argumente. Stößt AmokEd auf einen  Befehl,  den  er  nicht  kennt,
  995.     übergibt er ihn als Makro- name an ARexx.  Der  gesamte  Rest  der
  996.     Befehlszeile wird als Argument übergeben.  Dies  funktioniert  bei
  997.     Tastenbelegungen  genauso,  Sie  sollten  dort  aber  besser   die
  998.     RX-Befehle explizit benutzen. Bsp.:
  999.           MakroMitVielenArgs 1 2 3 4 5 6 7
  1000.  
  1001.   · Der Befehl RXS erlaubt Ihnen,  ARexx-Befehle  direkt  auszuführen.
  1002.     Das  Argument  wird  hierbei  nicht  als  Makroname,  sondern  als
  1003.     Befehlsstring  ("stringfile"  lt.  ARexx-Handbuch)  interprettiert
  1004.     und direkt ausgeführt. Bsp.:
  1005.           rxs (address command 'copy #? ram:')
  1006.  
  1007.     Von den ARexx-Makros aus können Sie die  Befehle  des  AmokEd  wie
  1008.   gewohnt benutzen. Anhand es Rückgabewertes rc (in ARexx) können  Sie
  1009.   feststellen,  ob  wie  gewünschte  Funktion  erfolgreich  war.  Mehr
  1010.   darüber entnehem Sie bitte der gesonderten  Dokumentation  Über  die
  1011.   Benutzung von ARexx.
  1012.  
  1013. AmokEd über ARexx von außen steuern
  1014.  
  1015.     AmokEd läßt sich  auch  von  externen  ARexx-Makros  steuern,  die
  1016.   nicht von AmokEd aus aktiviert wurden.  Dazu  muß  Ihnen  (bzw.  dem
  1017.   Makro) lediglich bekannt sein, wie der ARexx-Port des AmokEd  heißt,
  1018.   an den sie  senden  wollen.  Der  Port-Name  ist  in  der  Variablen
  1019.   $rexxport gespeichert, da er ggf. generiert  wird  (siehe  Abschnitt
  1020.   Aufruf).
  1021.     Wenn sie nur einen AmokEd aktiv  und  die  RexxArpLib  installiert
  1022.   haben, können sie mit
  1023.      rxs (setenv rexxport $rexxport)
  1024.   den Port-Namen als ARexx-Enviroment-Variable istallieren.
  1025.     Bessere Möglichkeiten bietet der Einsatz von Applikationen  (siehe
  1026.   unten).
  1027.  
  1028.   Es gibt (z.Z.)  einen  spezielle  ARexx-Befehl,  die  nur  über  den
  1029. ARexx-Port funktioniert:
  1030.  
  1031. GetVal    - Liefert die angegebene Variable zurück
  1032.             Bsp: der AEd-Befehl
  1033.               rxs (options results; getval $rexxport; say result)
  1034.               gibt den Name des AEd-Rexx-Ports im Rexx-StdOut aus.
  1035.  
  1036.     Weitere  Informationen  über  den  Einsatz  von  AReex  in  AmokEd
  1037.   entnehmen Sie bitte der gesonderten ARexx-Dokumentation.
  1038.  
  1039.  
  1040.                  --------------------------------
  1041.           ----------           VII            ----------
  1042.           ----------   Der Application-Port   ----------
  1043.                  --------------------------------
  1044.  
  1045.   Eine  weitere  hervoragende   Eigenschaft   von   AmokEd   ist   der
  1046. Applikation-Port. Über diesen Port auf ARexx-Basis können  Anwendungen
  1047. eine enge Bindung an AmokEd erreichen.
  1048.   Eine  Applikation  muß  sich  selbst  bei  AmokEd  anmelden.  Hierzu
  1049. benötigt sie den Portnamen, über  den  sie  mit  AmokEd  kommunizieren
  1050. kann. Dieser Portname ist über die Variable $rexxport erreichbar.
  1051.  
  1052.   Eine Applikation von AmokEd aus zu starten, ist ganz einfach:
  1053.   Bsp.:
  1054.       execute (run <nil: >nil: AmokEd:ApplDemo $rexxport)
  1055.  
  1056.       Wichtig ist hierbei, daß Sie die  Applikation  als  eigene  Task
  1057.       starten, da  AmokEd  auf  die  Beendigung  den  EXECUTE  Befehls
  1058.       wartet.
  1059.  
  1060.   Die Applikation meldet sich nun bei AmokEd an  und  teilt  ihm  mit,
  1061. unter welchen Applikations-Namen sie zu erreichen ist.
  1062.   Ist dies geschehen, so kann sie sehr einfach genutzt werden:
  1063.   · Geben Sie den Applikations-Name einfach in der  Befehlszeile  ein.
  1064.     Der  Rest  der  Zeile   wird   der   Applikation   als   Argumeten
  1065.     mitübergeben.
  1066.   · Mit dem Befehl `APPL' können Sie  wie  mit  dem  Befehl  RX1  eine
  1067.     Applikation mit einem Argument aufrufen.
  1068.     Wenn Sie  Applikationen  in  Makros  nutzen,  sollten  sie  diesen
  1069.     Befehl nehmen.
  1070.  
  1071.   Bsp.:
  1072.         ApplDemo Hallo Du!
  1073.         appl ApplDemo (Hallo Du!)
  1074.  
  1075.   Genaueres ist von der eingesetzten Applikation abhängig.  Lesen  Sie
  1076. hierzu die Dokumentation der Applikation.
  1077.  
  1078.   Alles weitere über Applikationen - Programmierung etc.  -  entnehmen
  1079. Sie bitte der gesonderten Dokumentation.
  1080.  
  1081. ---------------------------------------------------------------------------
  1082.  
  1083.   Sorry, wenn die deutsche Dokumentation etwas  holprig  klingt.  Aber
  1084. manche Sachen lassen sich in Englich schöner ausdrücken.
  1085.  Ich werde, wenn ich mal Zeit hab,  auch  eine  vollkommen  neue  Doku
  1086. schreiben, da ich von Freunden weiß, das diese nicht so gut ist (insb.
  1087. zum nachschlagen).
  1088.  
  1089. +++hartmut
  1090.  
  1091. ---------------------------------------------------------------------------
  1092. Release Notes:
  1093.  
  1094. Bedeutung: + hinzugekommen, - entfernt, ^ Funktion verbessert
  1095.  
  1096.  V1.30 - 09 Aug 1992 (release)
  1097.   + unterstützt Lesen von Files, die mit einer XPK-Lib gepackt wurden
  1098.     (und damit auch PowerPacker)
  1099.   + MATCHBRACKET
  1100.   + OberonSupport (Grundsatz über den Haufen geschmissen, keine Sprachab-
  1101.     hängigen Sachen einzubauen, aber es war _sehr_ einfach)
  1102.   + BusyPointer, System-Requester erscheinen auf AmokEds Screen
  1103.   + AppMenuItem (wenn nicht auf WB screen), AppWindow
  1104.   + Toggle: SaveIcons
  1105.   + Speichert mit Icons, defaults: ENV:AmokEd/def_(text|config).info
  1106.   + ToolType/Shell-Option: NOAPPMENU
  1107.   · 'iconified' Window hat Depth- uns Zoom-Gadget
  1108.   · Portname und ScreenName werden ggf. eindeutig gemacht
  1109.   · einige Requester eingebaut (z.B. VERSION, Load-Nachfrage)
  1110.   - Bug in FIND
  1111.   - Bug: Dead-Keys nicht möglich
  1112.  
  1113.  V1.29 - 19 Jun 1992 (intern)
  1114.   ^ WordWrap und Reformat nochmal überarbeitet:
  1115.     · beim Schreiben (Einfügemodus) wird nur Umgebrochen, wenn die
  1116.       Zeile voll beschrieben ist
  1117.          |blafasel   *      |  * Cursor    Wird hier ein Zeichen
  1118.          |jdf jdfjjdjf dfl  |              eingegeben, erfolgt kein
  1119.                             ^ margin       Umbruch mehr
  1120.     · beim Schreiben (Einfügemodus) wird nur bis zum Zeilenausgleich
  1121.       umgebrochen, bei REFORMAT bis zum Absatzende (funktioniert
  1122.       jetzt auch so)
  1123.   - Bugs im Parser
  1124.   · 'iconified' Windows untereinander
  1125.   · Gadgets als BOOPSI-Gadgets (GadTools hierfür nicht geeignet)
  1126.   · 'IF cl', 'IF cu' erkennt Umlaute
  1127.  
  1128.  V1.28 - 04 Mai 1992 (intern)
  1129.   + Variablen: $winleft, $wintop, $winwidth, $winheight,
  1130.                $tmpleft, $tmptop, $tmpwidth, $tmpheight,
  1131.                $screenname, $portname (wird $rexxport ersetzten)
  1132.   + TMPLEFT, TMPTOP, ARPSAVECONFIG
  1133.   ^ völlig neue Konfigurationsdateien (im IFF)
  1134.   · $rexxport obsolete
  1135.   · neue Speicherverwaltung: verhindert MungWall-Hits
  1136.   · sourced nicht mehr S:.aedrc/.aedrc, nur noch das in Config angegeben File
  1137.   · Suchfolge für Konfig-File ähnlich StyleGuide
  1138.   · Scroller als GadTools-Gadget
  1139.  
  1140.  V1.27 - 16 Apr 1992 (intern)
  1141.   · Shell-Parameter geändert (u.a. wg. DOS u. Style-Guide)
  1142.   · REMBOL heißt jetzt REMSOL (SytleGuide!)
  1143.   · Variablen werden in der lokalen Shell-Umgebung gespeichert
  1144.   - Bug: (iconify newwindow arpload) -> crash
  1145.  
  1146.  V1.26 - 14 Apr 1992 (intern)
  1147.   · nach Ausführen eines Rexx-Makros word der Lock für den Text aufs
  1148.     CurrentDir gesetzt.
  1149.   - Probleme mit dem neuen Lock-Settings behoben
  1150.  
  1151.  V1.25 - 10 Apr 1992 (small release)
  1152.   WICHTIG: Benötigt AmigaOS 2.0 oder größer!!!
  1153.   - Bug: Pattern wurde überschrieben (nur in der Release :-)
  1154.   · NumLock jetzt nur noch für unqualifzierte Tasten
  1155.   + PubScreens :-)
  1156.     AmokEd öffnet seinen Screen jetzt als PubScreen ggf. mit dem
  1157.     gewünschten Namen und kann sein Window auf dem angegebenen Screen
  1158.     öffnen. Dafault: Workbench-Screen
  1159.   ^ cond. bei REPEAT: lwintop = Zeilen bis zur Window-Oberkante
  1160.   + SETPATTERN: setzt das Pattern, das im ASL-FileReq angezeigt wird
  1161.   + bei `IF m' und `$modified' wird Zeile zurückgeschrieben, d.h. das
  1162.     das abgefragte Status auch der wirkliche ist.
  1163.   - Bug: Scrollen nach rechts, wenn außerhalb des eigentlichen Windows,
  1164.     aber nicht in den Scrollen geklickt
  1165.   + neue Variable: $path enthält den kommpletten Pfad der Datei
  1166.   ^ $Filename anthält nur noch den "FilePart"
  1167.   ^ Der Lock für einen Text liegt jetzt IMMER auf dessen Verzeichnis, bzw.
  1168.     auf dem Verzeichnis, daß mit CD gesetzt wurde.
  1169.   ^ Lock für den Prozess (CurretnDir) ist jetzt immer der Lock des Textes.
  1170.   · Wordwrap bricht nur noch die geschreibene Zeile um, Folgezeilen
  1171.     werden nicht mehr hochgezogen. Reformat arbeitet wie bisher.
  1172.     Nachteil: beim Löschen von Zeichen wird die Folgezeile nicht
  1173.     nachgezogen.
  1174.   · Tool-Types-Unterstützung (wird bei WINDOW noch geändert)
  1175.   - Bug: bei MultiReplace war es möglich, wärend des Ändern den Cursor
  1176.     zu versetzten => Replace an falscher Stelle
  1177.  
  1178.  V1.20c - 09 Feb 1992
  1179.    + Justify, Unjustify
  1180.    + neue Variablen: $margin, $modified, $currentline
  1181.    + Modifed auch schaltbat (mittels *Toggle)
  1182.    + GotoCol
  1183.    ^ Scrollbar jetzt voll funktionsfähig :-) Dank an Tobias Ruland
  1184.    - Bug in RexxRoutinen (Volkers SPrintf ist fehlerhaft)
  1185.    - Bug bei BDelete: falsche Zeilennummr, wenn Block = Textende
  1186.    - Bug in *Toggle: Titel wurde nicht gesichert
  1187.  
  1188.  V1.12 - 25 Dec 1991
  1189.    + MenuAddT: MenuItem mit CheckMark
  1190.    + MenuAddSep
  1191.    + CheckSet, CheckRest, CheckToggle: Toggle für die CheckMarks
  1192.    + Insert, Overwrite: schreiben Text unabhängig von InsertMode
  1193.    + NextWin, PrevWin: holt Windows der Reihe nach nach vorne
  1194.    + Cusor nur halbhoch, wenn im OverWrite-Mode
  1195.    + CaseInsensitive Find/Replace
  1196.    + Indent, Unindent, TabIndent, TabUnindent
  1197.    + Turbo-Mode bei Multireplace (ohne Screen-Update)
  1198.      Zeitvergleich: in Intuition.mod # -> * (zuvor * -> #)
  1199.        mrplc all    1 min 35 sek.
  1200.        mrplc turbo        17 sek.
  1201.    + NoScrUpdate
  1202.    + ArpSoure
  1203.    + RemBOL
  1204.    + ASCII
  1205.    - Toggle: AutoIndent (besser bei Bedarf über Indent/TabIndent)
  1206.    - Bugs dReformat
  1207.    - Bug: m-mmb ging nicht
  1208.    - viele kleine Bugs
  1209.    · MinWidth kann nich mehr unterschritten werden
  1210.    ^ PropGadget und WinHeight jetzt auch bei großen Fonts korrekt
  1211.    ^ PropGadget unter 2.0 im NewLook, unter 1.3 wie bisher
  1212.    ^ AprSave benutzt ASL-SaveReq (falls ASL vorhanden)
  1213.  
  1214.  V1.02b - 21 Oct 1991
  1215.    - Bug in ArpLoad (File/path-Split)
  1216.  
  1217.  V1.02 - 19 Oct 1991
  1218.    · ältere Release Notes gelöscht
  1219.  
  1220.